NetApp BlueXPでAmazon FSx for NetApp ONTAPの操作をしてみた
GUIでAmazon FSx for NetApp ONTAPを管理したい
こんにちは、のんピ(@non____97)です。
皆さんはGUIでAmazon FSx for NetApp ONTAP(以降FSxN)を管理したいなと思ったことはありますか? 私はあります。
FSxNではNetApp BlueXP(以降BlueXP)というNetAppのSaaSを使うことによって、Webブラウザ上でFSxNの操作を行うことが可能です。BlueXPの説明は以下記事をご覧ください。
実際にBlueXPのセットアップした際の手順を紹介します。
いきなりまとめ
- BlueXPをセットアップして、FSxNを操作できるまでの手順は以下のとおり
- NetAppのアカウント作成および、NetApp BlueXPにサインイン
- BlueXPとAWSアカウント連携用のIAMロールの作成と連携
- BlueXP Connectorの作成
- BlueXPでFSxNを管理する際は、実質BlueXP Connecotrが必須
NetAppのアカウント作成
まず、NetAppアカウントの作成をします。
https://bluexp.netapp.com/ja/ にアクセスします。
利用を開始
をクリックすると、ログインページが表示されます。
Sign up
をクリックして、アカウント入力フォームが表示されます。各種情報を入力してSign up
をクリックします。
Eメールが届くので、Eメールのリンクをクリックして、認証をします。
続いて、作成したアカウントを使ってサインインします。
Welcomeされました。
BlueXPとAWSアカウント連携用のIAMロールの作成と連携
次に、BlueXPとAWSアカウント連携用のIAMロールの作成と連携をします。
BlueXPとAWSアカウントの連携ができなければ、当然ですがFSxNの操作を行うことができません。
試しに、BlueXPとAWSアカウントの連携をせずに、FSxNを作成しようとしてみます。
Add working environment
をクリックします。
AWS
を選択して、Amazon FSx for ONTAPのAdd new
をクリックします。
はい、「AWSへの許可を提供する必要があるため、BlueXP用のIAMロールを登録しろ」とのメッセージが表示されNext
をクリックすることができません。
IAMロールを作ってあげましょう。BlueXPRole
というIAMロールを作成します。
許可するAWSアカウントは952013314444
です。
また、IAMポリシーは以下のとおりです。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "fsx:*", "ec2:Describe*", "ec2:CreateTags", "iam:CreateServiceLinkedRole", "kms:Describe*", "kms:List*", "kms:CreateGrant" ], "Resource": "*" } ] }
こちらの情報は以下NetApp公式ドキュメントに記載があります。
IAMロールの作成後、BlueXPコンソールの右上にある歯車アイコンをクリックし、Credentials
をクリックします。
Account credentials
のAdd Credentials
をクリックします。
AWS
- BlueXP
を選択してNext
をクリックします。
先ほど作成したIAMロールのARNや外部IDを入力します。Credential NameはBlueXP Role
としました。
レビュー画面で最終確認し、Add
をクリックします。
Credential一覧に先ほど作成されたCredentialが表示されました。
こちらまで完了すると、S3を認識しようとしていました。なお、IAMロールにS3の権限を渡していないので表示はできていません。
FSxNの作成
Credentialを作成したので、FSxNを作成しようとしてみます。
先ほど作成したCredentialを選択してNext
をクリックします。
ファイルシステム名やメンテナンスウィンドウ、fsxadminの認証情報などを入力してNext
をクリックします。
続いて、VPCの設定をしようとするとサポートされているリージョンの取得に失敗していました。
BlueXP Connectorの作成
「ここでBlueXP Connectorの出番か!!」と思い、BlueXP Connectorを作成します。
本当は先ほど作成したBlueXPのRoleに`ec2:DescribeRegions`など必要な権限をIAMポリシーに付与してあげれば良いだけです。FSxNを作成するだけであれば、BlueXP Connectorをこのタイミングで作成する必要はありません。
ジョブメニューのConnector
からCreate your first Connector
をクリックします。
ProviderでAWSを選択してContinue
をクリックします。
デプロイのプロセスが表示されます。Continue
をクリックします。
BlueXP Connectorをセットアップするにあたって必要なIAMポリシーが表示されます。
IAMポリシー全文は以下のとおりです。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:DeleteRole", "iam:PutRolePolicy", "iam:CreateInstanceProfile", "iam:DeleteRolePolicy", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteInstanceProfile", "iam:PassRole", "iam:ListRoles", "ec2:DescribeInstanceStatus", "ec2:RunInstances", "ec2:ModifyInstanceAttribute", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupIngress", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeKeyPairs", "ec2:DescribeRegions", "ec2:DescribeInstances", "ec2:CreateTags", "ec2:DescribeImages", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:ValidateTemplate", "ec2:AssociateIamInstanceProfile", "ec2:DescribeIamInstanceProfileAssociations", "ec2:DisassociateIamInstanceProfile", "iam:GetRole", "iam:TagRole", "kms:ListAliases", "cloudformation:ListStacks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:TerminateInstances" ], "Condition": { "StringLike": { "ec2:ResourceTag/OCCMInstance": "*" } }, "Resource": [ "arn:aws:ec2:*:*:instance/*" ] } ] }
こちらのIAMポリシーが付与されたIAMロールBlueXP Connector Role
を作成しました。
新規にIAMロールを作成せずに、最初に作成したIAMロールにアタッチする形でも良いです。むしろ、BlueXP Connectorを作るためのIAMロールなのか、BlueXP Connector自身が使うIAMロールなのか分かりづらいので、1つのIAMロールにアタッチする方が分かりやすいかと思います
作成したIAMロールをCredentialとして登録します。
BlueXP Connectorの作成ウィザードに戻ります。
デプロイ先のリージョンと先ほど作成したCredentialを選択してNext
をクリックします。
BlueXP Connectorのインスタンス名とBlueXP Connectorにアタッチされるインスタンス名を入力してNext
をクリックします。
VPCやサブネット、キーペア、パブリックIPアドレスの有無、HTTPプロキシの設定をしてNext
をクリックします。キーペアは事前に作成しておきましょう。
Security Groupのインバウンドルールで許可するネットワークアドレスを入力します。インターネットからBlueXP Connectorに対してインバウンドでの通信は発生しないので、VPCのCIDRなど限られたネットワークのみ許可すれば問題ありません。
作成するBlueXP Connectorの確認をしてAdd
をクリックします。
デプロイまで待ちます。5分ほどかかりました。
作成完了すると、Connector Successfully Created
と表示されます。
作成されたBlueXP Connector関連のリソースを確認します。
IAMロールには2つのインラインポリシーがアタッチされていました。
それぞれのポリシーは以下のとおりです。長すぎたので折りたたんでいます。
- BlueXPConnectorInstanceBlueXP_Policy_I
{ "Statement": [ { "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:RunInstances", "ec2:ModifyInstanceAttribute", "ec2:DescribeInstanceAttribute", "ec2:DescribeRouteTables", "ec2:DescribeImages", "ec2:CreateTags", "ec2:CreateVolume", "ec2:DescribeVolumes", "ec2:ModifyVolumeAttribute", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupIngress", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:CreateSnapshot", "ec2:DescribeSnapshots", "ec2:GetConsoleOutput", "ec2:DescribeKeyPairs", "ec2:DescribeRegions", "ec2:DescribeTags", "ec2:AssociateIamInstanceProfile", "ec2:DescribeIamInstanceProfileAssociations", "ec2:DisassociateIamInstanceProfile", "ec2:CreatePlacementGroup", "ec2:DescribeReservedInstancesOfferings", "ec2:AssignPrivateIpAddresses", "ec2:CreateRoute", "ec2:DescribeVpcs", "ec2:ReplaceRoute", "ec2:UnassignPrivateIpAddresses", "ec2:DeleteSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSnapshot", "ec2:DeleteTags", "ec2:DeleteRoute", "ec2:DeletePlacementGroup", "ec2:DescribePlacementGroups", "ec2:DescribeVolumesModifications", "ec2:ModifyVolume", "cloudformation:CreateStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:ValidateTemplate", "cloudformation:DeleteStack", "iam:PassRole", "iam:CreateRole", "iam:PutRolePolicy", "iam:CreateInstanceProfile", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:ListInstanceProfiles", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile", "iam:GetRolePolicy", "iam:GetRole", "sts:DecodeAuthorizationMessage", "sts:AssumeRole", "s3:GetBucketTagging", "s3:GetBucketLocation", "s3:ListBucket", "s3:CreateBucket", "s3:GetLifecycleConfiguration", "s3:ListBucketVersions", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:GetBucketPolicy", "s3:GetBucketAcl", "s3:PutObjectTagging", "s3:GetObjectTagging", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:PutObject", "s3:ListAllMyBuckets", "s3:GetObject", "s3:GetEncryptionConfiguration", "kms:List*", "kms:ReEncrypt*", "kms:Describe*", "kms:CreateGrant", "ce:GetReservationUtilization", "ce:GetDimensionValues", "ce:GetCostAndUsage", "ce:GetTags", "fsx:Describe*", "fsx:List*" ], "Resource": "*", "Effect": "Allow", "Sid": "cvoServicePolicy" }, { "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:DescribeInstanceAttribute", "ec2:DescribeImages", "ec2:CreateTags", "ec2:CreateVolume", "ec2:CreateSecurityGroup", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeRegions", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "kms:List*", "kms:Describe*", "ec2:describeVpcEndpoints", "kms:ListAliases", "athena:StartQueryExecution", "athena:GetQueryResults", "athena:GetQueryExecution", "glue:GetDatabase", "glue:GetTable", "glue:CreateTable", "glue:CreateDatabase", "glue:GetPartitions", "glue:BatchCreatePartition", "glue:BatchDeletePartition" ], "Resource": "*", "Effect": "Allow", "Sid": "backupPolicy" }, { "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:CreateBucket", "s3:GetLifecycleConfiguration", "s3:PutLifecycleConfiguration", "s3:PutBucketTagging", "s3:ListBucketVersions", "s3:GetBucketAcl", "s3:PutBucketPublicAccessBlock", "s3:GetObject", "s3:PutEncryptionConfiguration", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts", "s3:DeleteBucket", "s3:GetObjectVersionTagging", "s3:GetObjectVersionAcl", "s3:GetObjectRetention", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:PutObjectVersionTagging", "s3:PutObjectRetention", "s3:DeleteObjectTagging", "s3:DeleteObjectVersionTagging", "s3:GetBucketObjectLockConfiguration", "s3:GetBucketVersioning", "s3:PutBucketObjectLockConfiguration", "s3:PutBucketVersioning", "s3:BypassGovernanceRetention", "s3:PutBucketPolicy", "s3:PutBucketOwnershipControls" ], "Resource": [ "arn:aws:s3:::netapp-backup-*" ], "Effect": "Allow", "Sid": "backupS3Policy" }, { "Action": [ "s3:CreateBucket", "s3:GetLifecycleConfiguration", "s3:PutLifecycleConfiguration", "s3:PutBucketTagging", "s3:ListBucketVersions", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketPolicy", "s3:PutBucketPublicAccessBlock", "s3:DeleteBucket" ], "Resource": [ "arn:aws:s3:::fabric-pool*" ], "Effect": "Allow", "Sid": "fabricPoolS3Policy" }, { "Action": [ "ec2:DescribeRegions" ], "Resource": "*", "Effect": "Allow", "Sid": "fabricPoolPolicy" }, { "Condition": { "StringLike": { "ec2:ResourceTag/netapp-adc-manager": "*" } }, "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource": [ "arn:aws:ec2:*:*:instance/*" ], "Effect": "Allow" }, { "Condition": { "StringLike": { "ec2:ResourceTag/WorkingEnvironment": "*" } }, "Action": [ "ec2:StartInstances", "ec2:TerminateInstances", "ec2:AttachVolume", "ec2:DetachVolume", "ec2:StopInstances", "ec2:DeleteVolume" ], "Resource": [ "arn:aws:ec2:*:*:instance/*" ], "Effect": "Allow" }, { "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": [ "arn:aws:ec2:*:*:volume/*" ], "Effect": "Allow" }, { "Condition": { "StringLike": { "ec2:ResourceTag/WorkingEnvironment": "*" } }, "Action": [ "ec2:DeleteVolume" ], "Resource": [ "arn:aws:ec2:*:*:volume/*" ], "Effect": "Allow" } ] }
- BlueXPConnectorInstanceBlueXP_Policy_II
{ "Statement": [ { "Action": [ "ec2:DescribeRegions", "eks:ListClusters", "eks:DescribeCluster", "iam:GetInstanceProfile" ], "Resource": "*", "Effect": "Allow", "Sid": "K8sServicePolicy" }, { "Action": [ "cloudformation:DescribeStacks", "cloudwatch:GetMetricStatistics", "cloudformation:ListStacks" ], "Resource": "*", "Effect": "Allow", "Sid": "GFCservicePolicy" }, { "Condition": { "StringLike": { "ec2:ResourceTag/GFCInstance": "*" } }, "Action": [ "ec2:StartInstances", "ec2:TerminateInstances", "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": [ "arn:aws:ec2:*:*:instance/*" ], "Effect": "Allow" }, { "Action": [ "ec2:CreateTags", "ec2:DeleteTags", "ec2:DescribeTags", "tag:getResources", "tag:getTagKeys", "tag:getTagValues", "tag:TagResources", "tag:UntagResources" ], "Resource": "*", "Effect": "Allow", "Sid": "tagServicePolicy" } ] }
EC2インスタンスは以下のとおりです。インスタンスタイプはt3.xlarge
ですね。
ボリュームは100GBのものが1つアタッチされていました。
ユーザーデータは以下のとおりです。
{ "instanceName": "BlueXPConnectorInstance", "company": "Classmethod, Inc.", "userId": "auth0|<ユーザーID>", "email": "<Eメールアドレス>", "clientId": "<クライアントID>", "clientSecret": "<シークレット情報>", "environment": "production", "systemId": "<システムID>", "localAgent": "false", "proxySettings": { "proxyUrl": null, "proxyUserName": null, "proxyPassword": null }, "tenancyAccountId": "account-<アカウントID>" }
こちらのユーザーデータを読み込んで、BlueXP ConnectorからBlueXPに対して通信するのだと想像します。
セキュリティグループは以下のとおりです。何故か全てのTCPポートへのVPCのCIDRからのアクセスが許可されています。
AWS CLIからもEC2インスタンスの情報を確認しておきます。
$ aws ec2 describe-instances --instance-ids i-013781407dd88476f { "Reservations": [ { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-0c587abeb15014ce8", "InstanceId": "i-013781407dd88476f", "InstanceType": "t3.xlarge", "KeyName": "non-97", "LaunchTime": "2023-09-11T02:08:51+00:00", "Monitoring": { "State": "disabled" }, "Placement": { "AvailabilityZone": "us-east-1a", "GroupName": "", "Tenancy": "default" }, "PrivateDnsName": "ip-10-0-0-159.ec2.internal", "PrivateIpAddress": "10.0.0.159", "ProductCodes": [], "PublicDnsName": "ec2-34-201-44-43.compute-1.amazonaws.com", "PublicIpAddress": "34.201.44.43", "State": { "Code": 16, "Name": "running" }, "StateTransitionReason": "", "SubnetId": "subnet-07ee12f18f152d4a4", "VpcId": "vpc-043c0858ea33e8ec2", "Architecture": "x86_64", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "AttachTime": "2023-09-11T02:08:51+00:00", "DeleteOnTermination": false, "Status": "attached", "VolumeId": "vol-068a9f5dbcce20b29" } } ], "ClientToken": "BlueX-OCCMI-RBUY292O7FM5", "EbsOptimized": false, "EnaSupport": true, "Hypervisor": "xen", "IamInstanceProfile": { "Arn": "arn:aws:iam::<AWSアカウントID>:instance-profile/BlueXPConnectorInstanceOCCM1694397973564-OCCMInstanceProfile-f66tr4bHhJVx", "Id": "AIPASTFXPUVS5G3GFBVN2" }, "NetworkInterfaces": [ { "Association": { "IpOwnerId": "amazon", "PublicDnsName": "ec2-34-201-44-43.compute-1.amazonaws.com", "PublicIp": "34.201.44.43" }, "Attachment": { "AttachTime": "2023-09-11T02:08:51+00:00", "AttachmentId": "eni-attach-077683278327d8073", "DeleteOnTermination": true, "DeviceIndex": 0, "Status": "attached", "NetworkCardIndex": 0 }, "Description": "", "Groups": [ { "GroupName": "BlueXPConnectorInstanceOCCM1694397973564-OCCMSecurityGroup-16YSVPT6ZQR42", "GroupId": "sg-000734f30492d0ff9" } ], "Ipv6Addresses": [], "MacAddress": "0a:18:e2:ab:2e:57", "NetworkInterfaceId": "eni-0520082082288d3cf", "OwnerId": "<AWSアカウントID>", "PrivateDnsName": "ip-10-0-0-159.ec2.internal", "PrivateIpAddress": "10.0.0.159", "PrivateIpAddresses": [ { "Association": { "IpOwnerId": "amazon", "PublicDnsName": "ec2-34-201-44-43.compute-1.amazonaws.com", "PublicIp": "34.201.44.43" }, "Primary": true, "PrivateDnsName": "ip-10-0-0-159.ec2.internal", "PrivateIpAddress": "10.0.0.159" } ], "SourceDestCheck": true, "Status": "in-use", "SubnetId": "subnet-07ee12f18f152d4a4", "VpcId": "vpc-043c0858ea33e8ec2", "InterfaceType": "interface" } ], "RootDeviceName": "/dev/sda1", "RootDeviceType": "ebs", "SecurityGroups": [ { "GroupName": "BlueXPConnectorInstanceOCCM1694397973564-OCCMSecurityGroup-16YSVPT6ZQR42", "GroupId": "sg-000734f30492d0ff9" } ], "SourceDestCheck": true, "Tags": [ { "Key": "aws:cloudformation:stack-id", "Value": "arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BlueXPConnectorInstanceOCCM1694397973564/c95fc160-5047-11ee-ac27-12fb766967b5" }, { "Key": "OCCMInstance", "Value": "BlueXPConnectorInstance" }, { "Key": "aws:cloudformation:stack-name", "Value": "BlueXPConnectorInstanceOCCM1694397973564" }, { "Key": "aws:cloudformation:logical-id", "Value": "OCCMInstance" }, { "Key": "Name", "Value": "BlueXPConnectorInstance" } ], "VirtualizationType": "hvm", "CpuOptions": { "CoreCount": 2, "ThreadsPerCore": 2 }, "CapacityReservationSpecification": { "CapacityReservationPreference": "open" }, "HibernationOptions": { "Configured": false }, "MetadataOptions": { "State": "applied", "HttpTokens": "optional", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled", "HttpProtocolIpv6": "disabled", "InstanceMetadataTags": "disabled" }, "EnclaveOptions": { "Enabled": false }, "PlatformDetails": "Linux/UNIX", "UsageOperation": "RunInstances", "UsageOperationUpdateTime": "2023-09-11T02:08:51+00:00", "PrivateDnsNameOptions": { "HostnameType": "ip-name", "EnableResourceNameDnsARecord": false, "EnableResourceNameDnsAAAARecord": false }, "MaintenanceOptions": { "AutoRecovery": "default" }, "CurrentInstanceBootMode": "legacy-bios" } ], "OwnerId": "<AWSアカウントID>", "RequesterId": "043234062703", "ReservationId": "r-05f90c308bb77c253" } ] }
BlueXP ConnectorのEC2インスタンスにSSHしてみましょう。
> ssh -i "non-97.pem" ubuntu@ec2-34-201-44-43.compute-1.amazonaws.com Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-1028-aws x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Mon Sep 11 02:19:38 UTC 2023 System load: 0.7080078125 Users logged in: 0 Usage of /: 12.1% of 96.73GB IPv4 address for br-b2ecb88609c7: 10.4.20.1 Memory usage: 39% IPv4 address for docker0: 172.17.0.1 Swap usage: 0% IPv4 address for ens5: 10.0.0.159 Processes: 228 Expanded Security Maintenance for Applications is not enabled. 88 updates can be applied immediately. 45 of these updates are standard security updates. To see these additional updates run: apt list --upgradable Enable ESM Apps to receive additional future security updates. See https://ubuntu.com/esm or run: sudo pro status The list of available updates is more than a week old. To check for new updates run: sudo apt update Last login: Wed May 10 12:20:25 2023 from <IPアドレス> ~$ cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.1 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.1 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy ~$ ps auxf USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2 0.0 0.0 0 0 ? S 02:08 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [rcu_gp] root 4 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [rcu_par_gp] root 5 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [slub_flushwq] root 6 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [netns] root 8 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kworker/0:0H-events_highpri] root 9 0.2 0.0 0 0 ? I 02:08 0:01 \_ [kworker/u8:0-ext4-rsv-conversion] root 10 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [mm_percpu_wq] root 11 0.0 0.0 0 0 ? S 02:08 0:00 \_ [rcu_tasks_rude_] root 12 0.0 0.0 0 0 ? S 02:08 0:00 \_ [rcu_tasks_trace] root 13 0.0 0.0 0 0 ? S 02:08 0:00 \_ [ksoftirqd/0] root 14 0.0 0.0 0 0 ? I 02:08 0:00 \_ [rcu_sched] root 15 0.0 0.0 0 0 ? S 02:08 0:00 \_ [migration/0] root 16 0.0 0.0 0 0 ? S 02:08 0:00 \_ [idle_inject/0] root 18 0.0 0.0 0 0 ? S 02:08 0:00 \_ [cpuhp/0] root 19 0.0 0.0 0 0 ? S 02:08 0:00 \_ [cpuhp/1] root 20 0.0 0.0 0 0 ? S 02:08 0:00 \_ [idle_inject/1] root 21 0.0 0.0 0 0 ? S 02:08 0:00 \_ [migration/1] root 22 0.0 0.0 0 0 ? S 02:08 0:00 \_ [ksoftirqd/1] root 24 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kworker/1:0H-kblockd] root 25 0.0 0.0 0 0 ? S 02:08 0:00 \_ [cpuhp/2] root 26 0.0 0.0 0 0 ? S 02:08 0:00 \_ [idle_inject/2] root 27 0.0 0.0 0 0 ? S 02:08 0:00 \_ [migration/2] root 28 0.1 0.0 0 0 ? S 02:08 0:00 \_ [ksoftirqd/2] root 30 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kworker/2:0H-events_highpri] root 31 0.0 0.0 0 0 ? S 02:08 0:00 \_ [cpuhp/3] root 32 0.0 0.0 0 0 ? S 02:08 0:00 \_ [idle_inject/3] root 33 0.0 0.0 0 0 ? S 02:08 0:00 \_ [migration/3] root 34 0.0 0.0 0 0 ? S 02:08 0:00 \_ [ksoftirqd/3] root 35 0.0 0.0 0 0 ? I 02:08 0:00 \_ [kworker/3:0-events] root 36 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kworker/3:0H-events_highpri] root 37 0.0 0.0 0 0 ? S 02:08 0:00 \_ [kdevtmpfs] root 38 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [inet_frag_wq] root 39 0.0 0.0 0 0 ? S 02:08 0:00 \_ [kauditd] root 40 0.0 0.0 0 0 ? S 02:08 0:00 \_ [khungtaskd] root 41 0.0 0.0 0 0 ? S 02:08 0:00 \_ [oom_reaper] root 42 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [writeback] root 43 0.0 0.0 0 0 ? S 02:08 0:00 \_ [kcompactd0] root 44 0.0 0.0 0 0 ? SN 02:08 0:00 \_ [ksmd] root 45 0.0 0.0 0 0 ? SN 02:08 0:00 \_ [khugepaged] root 50 0.0 0.0 0 0 ? I 02:08 0:00 \_ [kworker/1:1-events] root 92 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kintegrityd] root 93 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kblockd] root 94 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [blkcg_punt_bio] root 95 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [tpm_dev_wq] root 96 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [ata_sff] root 97 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [md] root 98 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [edac-poller] root 99 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [devfreq_wq] root 100 0.0 0.0 0 0 ? S 02:08 0:00 \_ [watchdogd] root 101 0.0 0.0 0 0 ? I 02:08 0:00 \_ [kworker/2:1-events] root 103 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kworker/0:1H-kblockd] root 105 0.0 0.0 0 0 ? S 02:08 0:00 \_ [kswapd0] root 106 0.0 0.0 0 0 ? S 02:08 0:00 \_ [ecryptfs-kthrea] root 107 0.0 0.0 0 0 ? I 02:08 0:00 \_ [kworker/3:1-events] root 109 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kthrotld] root 110 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [acpi_thermal_pm] root 111 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [nvme-wq] root 112 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [nvme-reset-wq] root 113 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [nvme-delete-wq] root 114 0.1 0.0 0 0 ? I 02:08 0:01 \_ [kworker/u8:2-flush-259:0] root 115 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [vfio-irqfd-clea] root 116 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [mld] root 117 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kworker/2:1H-kblockd] root 118 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [ipv6_addrconf] root 128 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kstrp] root 131 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [zswap-shrink] root 132 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kworker/u9:0] root 137 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [charger_manager] root 138 0.1 0.0 0 0 ? S 02:08 0:01 \_ [jbd2/nvme0n1p1-] root 139 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [ext4-rsv-conver] root 141 0.0 0.0 0 0 ? I 02:08 0:00 \_ [kworker/2:2-cgroup_destroy] root 165 0.0 0.0 0 0 ? I< 02:08 0:00 \_ [kworker/1:1H-kblockd] root 199 0.0 0.0 0 0 ? I 02:09 0:00 \_ [kworker/0:2-events] root 211 0.0 0.0 0 0 ? I< 02:09 0:00 \_ [kworker/3:1H-kblockd] root 222 0.0 0.0 0 0 ? I< 02:09 0:00 \_ [kaluad] root 223 0.0 0.0 0 0 ? I< 02:09 0:00 \_ [kmpath_rdacd] root 224 0.0 0.0 0 0 ? I< 02:09 0:00 \_ [kmpathd] root 225 0.0 0.0 0 0 ? I< 02:09 0:00 \_ [kmpath_handlerd] root 263 0.0 0.0 0 0 ? I< 02:09 0:00 \_ [cryptd] root 279 0.0 0.0 0 0 ? I< 02:09 0:00 \_ [ena] root 331 0.0 0.0 0 0 ? I 02:09 0:00 \_ [kworker/u8:7-flush-259:0] root 334 0.4 0.0 0 0 ? I 02:09 0:02 \_ [kworker/u8:9-events_unbound] root 335 0.2 0.0 0 0 ? I 02:09 0:02 \_ [kworker/u8:10-flush-259:0] root 572 0.0 0.0 0 0 ? I 02:09 0:00 \_ [kworker/1:4-events] root 1038 0.0 0.0 0 0 ? I 02:09 0:00 \_ [kworker/3:3-cgroup_destroy] root 1422 0.0 0.0 0 0 ? I 02:09 0:00 \_ [kworker/0:3-events] root 6643 0.1 0.0 0 0 ? I 02:14 0:00 \_ [kworker/u8:5-flush-259:0] root 10517 0.0 0.0 0 0 ? I 02:15 0:00 \_ [kworker/u8:8-flush-259:0] root 10975 0.0 0.0 0 0 ? I 02:18 0:00 \_ [kworker/1:0-events] root 1 0.6 0.0 167936 13484 ? Ss 02:08 0:04 /sbin/init root 181 0.0 0.0 56140 14976 ? S<s 02:09 0:00 /lib/systemd/systemd-journald root 226 0.0 0.1 289308 27096 ? SLsl 02:09 0:00 /sbin/multipathd -d -s root 228 0.0 0.0 23044 6572 ? Ss 02:09 0:00 /lib/systemd/systemd-udevd systemd+ 446 0.0 0.0 16380 8476 ? Ss 02:09 0:00 /lib/systemd/systemd-networkd systemd+ 448 0.2 0.0 25400 13496 ? Ss 02:09 0:01 /lib/systemd/systemd-resolved root 538 0.0 0.0 2812 1192 ? Ss 02:09 0:00 /usr/sbin/acpid root 542 0.0 0.0 7284 2836 ? Ss 02:09 0:00 /usr/sbin/cron -f -P message+ 543 0.0 0.0 9360 5244 ? Ss 02:09 0:00 @dbus-daemon --system --address=systemd: --nofork --n root 551 0.0 0.0 82764 3976 ? Ssl 02:09 0:00 /usr/sbin/irqbalance --foreground root 552 0.0 0.1 33128 19460 ? Ss 02:09 0:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-s syslog 554 0.0 0.0 222400 5736 ? Ssl 02:09 0:00 /usr/sbin/rsyslogd -n -iNONE root 557 0.5 0.1 1540568 30584 ? Ssl 02:09 0:03 /usr/lib/snapd/snapd root 558 0.0 0.0 15512 7448 ? Ss 02:09 0:00 /lib/systemd/systemd-logind root 560 0.1 0.3 1505792 54480 ? Ssl 02:09 0:01 /usr/bin/containerd root 585 0.0 0.0 6216 1088 ttyS0 Ss+ 02:09 0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,57600,384 root 590 0.0 0.0 6172 1080 tty1 Ss+ 02:09 0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux _chrony 595 0.0 0.0 18888 3540 ? S 02:09 0:00 /usr/sbin/chronyd -F 1 _chrony 606 0.0 0.0 10560 528 ? S 02:09 0:00 \_ /usr/sbin/chronyd -F 1 root 635 0.0 0.1 110072 21416 ? Ssl 02:09 0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unatt root 654 0.0 0.0 235452 8040 ? Ssl 02:09 0:00 /usr/libexec/polkitd --no-debug root 781 0.0 0.0 15424 9108 ? Ss 02:09 0:00 sshd: /usr/sbin/sshd -D -o AuthorizedKeysCommand /usr root 11040 0.0 0.0 16916 10672 ? Ss 02:19 0:00 \_ sshd: ubuntu [priv] ubuntu 11108 0.0 0.0 17216 7968 ? S 02:19 0:00 \_ sshd: ubuntu@pts/0 ubuntu 11109 0.0 0.0 9228 5472 pts/0 Ss 02:19 0:00 \_ -bash ubuntu 11186 0.0 0.0 10800 3668 pts/0 R+ 02:20 0:00 \_ ps auxf root 855 21.7 0.6 3293588 107556 ? Ssl 02:09 2:33 /usr/bin/dockerd -H fd:// --containerd=/run/container root 2709 0.1 0.0 1304980 4868 ? Sl 02:10 0:01 \_ /usr/bin/docker-proxy -proto tcp -host-ip 127.0.0 root 2843 0.0 0.0 1230992 3356 ? Sl 02:10 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip 127.0.0 root 2983 0.0 0.0 1083016 3224 ? Sl 02:10 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 root 2993 0.0 0.0 1156748 3476 ? Sl 02:10 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip :: -hos root 3048 0.0 0.0 1230992 3368 ? Sl 02:10 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 root 3057 0.0 0.0 1156748 3320 ? Sl 02:10 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip :: -hos root 7232 0.0 0.0 1157004 3404 ? Sl 02:14 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 root 7246 0.0 0.0 1157004 3336 ? Sl 02:14 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip :: -hos root 8026 0.0 0.0 1156748 3236 ? Sl 02:14 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 root 8058 0.0 0.0 1083272 3440 ? Sl 02:14 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip :: -hos root 8199 0.0 0.0 1156748 3296 ? Sl 02:14 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 root 8208 0.0 0.0 1230736 3284 ? Sl 02:14 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip :: -hos root 10531 0.0 0.0 1378456 3244 ? Sl 02:15 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 root 10541 0.0 0.0 1230736 3404 ? Sl 02:15 0:00 \_ /usr/bin/docker-proxy -proto tcp -host-ip :: -hos root 1567 3.6 0.7 916616 125936 ? Ssl 02:09 0:24 /opt/application/netapp/service-manager-2/sm2 root 2626 0.0 0.0 720760 9408 ? Sl 02:10 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 2660 4.1 1.4 10036580 241456 ? Ssl 02:10 0:25 \_ java -XX:+UnlockExperimentalVMOptions -XX:+UseCGr root 2693 0.0 0.0 720504 9140 ? Sl 02:10 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id lxd 2726 0.5 1.7 2632136 277952 ? Ssl 02:10 0:03 \_ mysqld root 2762 0.0 0.0 720760 8948 ? Sl 02:10 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 2851 21.8 9.7 4642952 1581520 ? Ssl 02:10 2:15 \_ java -XX:+UnlockExperimentalVMOptions -XX:MaxRAMF root 2785 0.0 0.0 720760 9356 ? Sl 02:10 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 2869 5.6 1.5 10027236 249652 ? Ssl 02:10 0:35 \_ java -XX:+UnlockExperimentalVMOptions -XX:+UseCGr root 2902 0.0 0.0 720504 10468 ? Sl 02:10 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 2937 0.0 0.0 7632 5132 ? Ss 02:10 0:00 \_ nginx: master process nginx -g daemon off; systemd+ 3587 0.0 0.0 7872 1720 ? S 02:10 0:00 \_ nginx: worker process root 2974 0.0 0.0 720504 9508 ? Sl 02:10 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 3029 3.7 1.4 9918292 239292 ? Ssl 02:10 0:23 \_ java -XX:+UnlockExperimentalVMOptions -XX:+UseCGr root 3120 0.0 0.0 720504 9112 ? Sl 02:10 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 3157 0.2 0.5 844648 96660 ? Ssl 02:10 0:01 \_ traefik traefik --configFile=/conf/traefik.yml root 3370 0.0 0.0 1608 4 ? S 02:10 0:00 \_ inotifyd /conf/on_cert_write.sh /conf/certs/ root 7128 0.0 0.0 720504 9500 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7202 0.0 0.0 3984 2972 ? Ss 02:14 0:00 \_ /bin/bash /opt/netapp/cbs/catalog/scripts/entrypo root 8378 2.0 1.1 11820084 184328 ? Sl 02:14 0:07 \_ node dist/app.js root 7190 0.0 0.0 720504 9080 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7254 0.0 0.3 769608 48632 ? Ssl 02:14 0:00 \_ ./cloudmanager_scs_cloud root 7228 0.0 0.0 720760 10368 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7287 3.0 1.0 9822856 164468 ? Ssl 02:14 0:11 \_ java -XX:+UnlockExperimentalVMOptions -XX:+UseCGr root 7340 0.0 0.0 720504 9756 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7690 1.3 0.5 32710564 81760 ? Ssl 02:14 0:05 \_ node --loader @esbuild-kit/esm-loader index.js root 7364 0.0 0.0 720760 9476 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7656 0.0 0.1 733692 25308 ? Ssl 02:14 0:00 \_ ./cloudmanager_snapcenter root 7443 0.0 0.0 720504 8972 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7648 0.0 0.0 1604 1124 ? Ss 02:14 0:00 \_ /bin/sh /opt/netapp/k8s/scripts/entrypoint.sh root 8830 0.2 0.3 703504 60312 ? Sl 02:14 0:01 \_ npm run start root 10209 2.4 0.6 32738476 112704 ? Sl 02:14 0:08 \_ node --experimental-loader @esbuild-kit/e root 7484 0.0 0.0 720504 9344 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7683 1.3 0.5 20106312 85796 ? Ssl 02:14 0:04 \_ node --experimental-loader ./loader.js index.js root 7517 0.0 0.0 720504 8772 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7657 15.2 0.6 32731340 104020 ? Ssl 02:14 0:57 \_ node --loader @esbuild-kit/esm-loader app.js root 7557 0.0 0.0 720248 8984 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7713 0.1 0.4 326808 65204 ? Ssl 02:14 0:00 \_ node /opt/yarn-v1.22.19/bin/yarn.js start root 9720 0.1 0.3 278196 54844 ? Sl 02:14 0:00 \_ /usr/local/bin/node src/index.js root 7615 0.0 0.0 720504 9680 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7675 0.0 0.0 1604 1160 ? Ss 02:14 0:00 \_ /bin/sh /opt/netapp/cloudtiering/agent/scripts/en root 8634 0.4 0.3 705132 63712 ? Sl 02:14 0:01 \_ npm run start root 10181 3.9 1.1 32810120 184768 ? Sl 02:14 0:14 \_ node --experimental-loader @esbuild-kit/e root 7663 0.2 0.1 1463860 19096 ? Ssl 02:14 0:00 /snap/amazon-ssm-agent/7528/amazon-ssm-agent root 7830 0.0 0.0 720504 9608 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7930 0.1 0.4 326528 65352 ? Ssl 02:14 0:00 \_ node /opt/yarn-v1.22.19/bin/yarn.js start root 10102 0.0 0.3 276468 53368 ? Sl 02:14 0:00 \_ /usr/local/bin/node src/index.js root 7841 0.0 0.0 720760 9120 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 7988 0.0 0.0 1604 1020 ? Ss 02:14 0:00 \_ /bin/sh ./startup.sh root 10000 2.6 0.7 43238740 126600 ? Sl 02:14 0:09 \_ node --loader @esbuild-kit/esm-loader index.j root 7968 0.0 0.0 720504 10144 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 8101 0.0 0.0 1624 944 ? Ss 02:14 0:00 \_ /bin/sh /opt/netapp/cbs/server/scripts/entrypoint root 10017 16.8 1.0 21772780 168748 ? Sl 02:14 1:02 \_ node --experimental-specifier-resolution=node root 7985 0.0 0.0 720504 10468 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 8162 0.4 0.4 335584 80320 ? Ssl 02:14 0:01 \_ node dist/apps/cloudmanager_audit/main root 8012 0.0 0.0 720504 8844 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 8233 0.0 0.0 1616 1000 ? Ss 02:14 0:00 \_ /bin/sh /usr/src/app/entrypoint.sh root 10032 0.7 0.4 10801032 68120 ? Sl 02:14 0:02 \_ node index.js root 8077 0.0 0.0 720760 9096 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id ubuntu 8252 0.1 0.1 30184 27136 ? Ss 02:14 0:00 \_ /usr/bin/python3 /usr/bin/supervisord -c /etc/sup ubuntu 9031 0.0 0.0 1672 4 ? S 02:14 0:00 \_ cat ubuntu 10267 0.1 0.1 28144 24780 ? S 02:14 0:00 \_ /usr/local/bin/python /usr/local/bin/gunicorn ubuntu 10349 1.4 0.7 138724 128392 ? Sl 02:14 0:05 | \_ /usr/local/bin/python /usr/local/bin/guni ubuntu 10352 1.3 0.7 138692 128096 ? Sl 02:14 0:05 | \_ /usr/local/bin/python /usr/local/bin/guni ubuntu 10353 1.1 0.7 137540 128108 ? Sl 02:14 0:04 | \_ /usr/local/bin/python /usr/local/bin/guni ubuntu 10268 0.0 0.0 7480 5936 ? S 02:14 0:00 \_ nginx: master process /usr/sbin/nginx -g daem ubuntu 10281 0.0 0.0 7936 2896 ? S 02:14 0:00 | \_ nginx: worker process ubuntu 10282 0.0 0.0 7936 2892 ? S 02:14 0:00 | \_ nginx: worker process ubuntu 10285 0.0 0.0 7936 2892 ? S 02:14 0:00 | \_ nginx: worker process ubuntu 10286 0.0 0.0 7936 2892 ? S 02:14 0:00 | \_ nginx: worker process ubuntu 10269 0.1 0.0 29004 5760 ? Sl 02:14 0:00 \_ /usr/local/bin/redis-server *:6379 ubuntu 10271 0.7 0.5 103512 96588 ? S 02:14 0:02 \_ python3 app/scheduler.py ubuntu 10274 0.7 0.5 101200 93684 ? S 02:14 0:02 \_ /usr/local/bin/python /usr/local/bin/celery - ubuntu 10705 0.0 0.5 102044 84768 ? S 02:15 0:00 \_ /usr/local/bin/python /usr/local/bin/cele ubuntu 10710 0.0 0.5 102048 84760 ? S 02:15 0:00 \_ /usr/local/bin/python /usr/local/bin/cele root 8286 0.0 0.0 720248 8992 ? Sl 02:14 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 8381 3.8 1.5 9976496 256896 ? Ssl 02:14 0:14 \_ java -XX:+UnlockExperimentalVMOptions -XX:+UseCGr root 10567 0.0 0.0 720760 10244 ? Sl 02:15 0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id root 10589 0.0 0.0 4244 3500 ? Ss 02:15 0:00 \_ /bin/bash /usr/local/bin/entrypoint.sh -f /etc/sq root 10687 0.0 0.0 2668 924 ? S 02:15 0:00 \_ tail -F /var/log/squid/access.log root 10688 0.0 0.0 2668 928 ? S 02:15 0:00 \_ tail -F /var/log/squid/error.log root 10689 0.0 0.0 2668 912 ? S 02:15 0:00 \_ tail -F /var/log/squid/store.log root 10690 0.0 0.0 2668 1000 ? S 02:15 0:00 \_ tail -F /var/log/squid/cache.log proxy 10692 0.0 1.0 659320 171760 ? S 02:15 0:00 \_ /usr/sbin/squid -f /etc/squid/squid.conf -NYC proxy 10694 0.0 0.0 5912 1808 ? Ss 02:15 0:00 \_ (logfile-daemon) /var/log/squid/access.lo proxy 10695 0.0 0.0 6020 1972 ? Ss 02:15 0:00 \_ (pinger) ubuntu 11045 0.1 0.0 17332 9836 ? Ss 02:19 0:00 /lib/systemd/systemd --user ubuntu 11046 0.0 0.0 170848 5416 ? S 02:19 0:00 \_ (sd-pam) ~$ sudo ss -antp | grep LISTEN LISTEN 0 4096 127.0.0.1:3001 0.0.0.0:* users:(("docker-proxy",pid=2843,fd=4)) LISTEN 0 4096 0.0.0.0:443 0.0.0.0:* users:(("docker-proxy",pid=2983,fd=4)) LISTEN 0 4096 0.0.0.0:9060 0.0.0.0:* users:(("docker-proxy",pid=8199,fd=4)) LISTEN 0 4096 0.0.0.0:9061 0.0.0.0:* users:(("docker-proxy",pid=8026,fd=4)) LISTEN 0 4096 127.0.0.1:8777 0.0.0.0:* users:(("docker-proxy",pid=2709,fd=4)) LISTEN 0 4096 0.0.0.0:80 0.0.0.0:* users:(("docker-proxy",pid=3048,fd=4)) LISTEN 0 4096 0.0.0.0:8085 0.0.0.0:* users:(("docker-proxy",pid=7232,fd=4)) LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=448,fd=14)) LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=781,fd=3)) LISTEN 0 4096 0.0.0.0:3128 0.0.0.0:* users:(("docker-proxy",pid=10531,fd=4)) LISTEN 0 511 172.17.0.1:8888 0.0.0.0:* users:(("sm2",pid=1567,fd=19)) LISTEN 0 4096 [::]:443 [::]:* users:(("docker-proxy",pid=2993,fd=4)) LISTEN 0 4096 [::]:9060 [::]:* users:(("docker-proxy",pid=8208,fd=4)) LISTEN 0 4096 [::]:9061 [::]:* users:(("docker-proxy",pid=8058,fd=4)) LISTEN 0 4096 [::]:80 [::]:* users:(("docker-proxy",pid=3057,fd=4)) LISTEN 0 4096 [::]:8085 [::]:* users:(("docker-proxy",pid=7246,fd=4)) LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=781,fd=4)) LISTEN 0 4096 [::]:3128 [::]:* users:(("docker-proxy",pid=10541,fd=4))
正体はUbuntu 22.04のようです。内部でコンテナが大量に動いていますね。
BleuXPのコンソールに戻ってCredentialsを確認すると、BleuXP ConnectorのEC2インスタンスのインスタンスプロファイルが登録されていますね。
こちらのインスタンスプロファイルにはS3の権限が付与されているので、S3バケットの個数がCanvasに表示されていました。
FSxNの作成 (リトライ)
FSxNの作成をリトライしてみます。
BlueXP Role
をCredentialに指定してNext
をクリックします。
ファイルシステム名やメンテナンスウィンドウ、fsxadminの認証情報などを入力してNext
をクリックします。
ここでFailed getCredentialsById, id:3780e162-fc85-4b05-b775-98507c75fc22 {"statusCode":400,"message":"assume role for arn:aws:iam:::role/BlueXPRole failed . err: ValidationError: 1 validation error detected: Value 'BlueXP Role' at 'roleSessionName' failed to satisfy constraint: Member must satisfy regular expression pattern: [\\w+=,.@-]*"}
とエラーになりました。
BlueXP Role
とCredential名がそのままセッション名になるようですね。スペースなどセッション名に含んではならない文字はCredential名に含めないようにしましょう。
BlueXPRole
に名前を変更して再チャレンジすると、エラーなく次の画面に遷移できました。
リージョンやVPC、サブネット、Security Groupを選択してNext
をクリックします。
Multi-AZデプロイだと2つのサブネットの指定ができます。
Floating IPアドレスの設定も可能です。
また、Floating IPアドレスへのルーティングを行うルートテーブルの選択も行えます。
Single-AZデプロイのフローに戻ります。
暗号化で使用するキーを選択します。今回はデフォルトキーでNext
をクリックします。
プロビジョニングするSSDとIOPS、スループットキャパシティの設定をしてNext
をクリックします。
最終確認です。内容確認してAdd
をクリックします。
するとFSxNが作成されます。
Canvasから作成したFSxNを選択してEnter Working Environment
をクリックすると25分ほどかかると記載ありました。
AWSマネジメントコンソールからも作成状況を確認します。
しばらく待つとFSxNの作成が完了しました。
ちなみにBlueXP ConnectorのEC2インスタンスがない状態だと、以下のようにReplication requires a BlueXP connector
などと各種設定ができないようになっています。
作成したFSxNの確認
Enter Working Environment
をクリックして、作成したFSxNの詳細を確認をします。
すると、There is no connectivity
と表示されました。
これはBlueXP ConnectorのEC2インスタンスからFSxNへのHTTPS通信が許可されていないためです。FSxNのSecurity Groupのインバウンドルールで許可してあげましょう。
設定後リフレッシュすると、ストレージやSVMの情報が表示されました。
なお、BlueXP Connectorがそもそも存在しないと、A BlueXP connector is required to manage your FSx for ONTAP instance
と表示されAutomatic capacity management
とWeekly maintenance window
しか設定変更できないようでした。BlueXP Connectorはほとんど必須なようなものですね。
ボリュームの作成
試しにボリュームを作ってみましょう。
Volume
タブからAdd Volume
をクリックします。
ボリュームの名前やサイズ、SVM、SnapMirror Policyなどを選択してNext
をクリックします。
ボリュームのプロトコルやアクセスコントロールの設定をしてNext
をクリックします。
Storage EfficiencyとTiering Policyを設定してNext
をクリックします。
設定内容を確認してAdd
をクリックします。
すると、ボリュームが作成されました。いい感じです。
SVMの確認もついでにします。
AWSマネジメントコンソールで確認できる情報とほぼ同じですね。
一通り情報を見た後、Timelineを確認するとボリューム作成などのイベントが記録されていました。
既存のFSxNの検索
BlueXPで作成したFSxN以外もBlueXP上で管理できるようにすることもできます。
CanvasのAdd Working Environment
からAmazon FSx for ONTAPのDiscover Existing
をクリックします。
Credentialを選択してNext
をクリックします。
BlueXPに追加するFSxNを選択してAdd
をクリックします。
Canvasに選択したしたFSxNが追加されました。
SnapMirrorの設定
SnapMirrorの設定をしてみます。
SnapMirrorのソースとなるFSxNをターゲットのFSxNにドラッグ&ドロップしてReplication
をクリックします。
追加したFSxNのfsxadminの認証情報を渡してあげてNext
をクリックします。
ソースとなるボリュームを選択してNext
をクリックします。
ターゲットボリュームのTiering Policyを選択してNext
をクリックします。
ターゲットボリュームの名前とSVMを設定してNext
をクリックします。
SnapMirrorのの転送帯域を指定してNext
をクリックします。
SnapMirror Policyを選択してNext
をクリックします。詳細な説明があるので好きです。
SnapMirrorの間隔を指定してNext
をクリックします。
設定内容を確認してReplication
をクリックします。
SnapMirrorがうまく動作しない場合は、SnapMirrorで使用する通信がSecurity Groupで許可されていない可能性があります。TCP/11104とTCP/11105を許可してあげます。
正常に設定ができると、Canvas上にReplicationのアイコンが表示されます。
SnapMirrorの情報を確認します。
無事レプリケーションできていそうですね。
詳細を確認すると、設定しているSnapMirror Policyなども確認できます。
Advanced Viewの確認
ONTAP 9.12.1からBlueXPとSystem Managerは統合されています。
これにより、Standard Viewで設定できない内容も設定することができます。
FSxNを選択した状態でSwitch to Advanced View
をクリックします。
すると。以下のようにSystem Managerの画面が表示されます。
SnapMirrorのより詳細な情報も確認できます。
転送されたSnapShot Copyも確認できます。
また、ユーザーやクラスターピアリング、SVMピアリングといった情報も確認可能です。
ボリュームの詳細も確認しましょう。
大量の情報を浴びることができて私は好きです。
FSxNをGUIでサクッと管理したい時に
NetApp BlueXPでAmazon FSx for NetApp ONTAPの操作をしてみました。
FSxNをGUIでサクッと管理したい時に使うと良いかと思います。
また、ONTAP CLI中心だと気づけなかった思わぬ設定項目に気づくことができそうですね。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!